package vista.ventanaProyecto;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import modelo.Proyecto;
import modelo.SistemaPrincipal;
import modelo.exception.ExistingUserException;
	
	/**
	 * 
	 * @author rocio
	 *
	 */
public class AgregarUsuarioAlProyecto extends VentanaDeUsuariosAbstract {
	
	// Variables  *********************************************************** //

	private static final long serialVersionUID = 4189046699283788461L;
	private JButton guardar;
	private SistemaPrincipal myActualObserver;
	private Proyecto model;
	
	// Constructor *********************************************************** //

	public AgregarUsuarioAlProyecto(Proyecto model, SistemaPrincipal sistema){
		this.model = model;
		this.myActualObserver = sistema;
		this.setTitle("Agregar usuarios al proyecto");
		this.init();
		this.agregarComponentes();
	}

	// Metodos  *********************************************************** //

	/**
	 * Inicializa los componentes
	 */
	public void init(){

		this.getContentPane().setLayout(new BorderLayout());
		//crea la tabla
		super.crearTablaUsuario(this.myActualObserver.getUsuarios());
		//crea button
		this.guardar = new JButton ("guardar");
		this.cerrar = new JButton ("cerrar");
		//crea panel
		this.panel= new JPanel ();

	}
	
	/**
	 *  Agrega los componentes al Jframe
	 */
	public void agregarComponentes (){
		//agrega al panel los componentes
		this.panel.add(cerrar);
		this.panel.add(guardar);
		//accion del button
		guardar.addActionListener(new BotonGuardarListener());
		cerrar.addActionListener(new BotonCancelarListener());
		//setea propiedades de la ventana
		this.pack();
		this.setSize(700, 300);
		this.setVisible(true);
		this.getContentPane().add(panel,BorderLayout.SOUTH);
		this.panel.setBackground(Color.DARK_GRAY);
		this.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE);
	}
	
	/**
	 * Boton que guarda los cambios
	 */
	public class BotonGuardarListener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent e) {
			
				try {
					model.agregarMiembro(myActualObserver.getUsuarios().get(tablaUsuario.getSelectedRow()));
					JOptionPane.showMessageDialog(panel, "El usuario fue agregado exitosamente",
							"Mensaje", JOptionPane.NO_OPTION);	
				}
				catch(ExistingUserException e1){
					JOptionPane.showMessageDialog(panel, "Ese usuario ya existe en el proyecto seleccionado",
							"Mensaje", JOptionPane.ERROR_MESSAGE);					
				}	
				catch (ArrayIndexOutOfBoundsException e3){
					JOptionPane.showMessageDialog(panel, "Seleccione un usuario primero",
						"Mensaje", JOptionPane.ERROR_MESSAGE);
				}
			}
		}
	
	
}
